package OfferLanQiaoBei;

import java.util.Scanner;
/*
小蓝家要装修了，小蓝爸爸买来了很多块（你可以理解为数量无限）2×3 规格的地砖，
小蓝家的地板是 n×m 规格的，小蓝想问你，能否用这些 2×32×3 的地砖铺满地板。

铺满地板：对于地板的每个区域，都有且只有一块地砖覆盖，地砖可以旋转，但不能切割。
小蓝家是个多层小别墅，每一层的规格不一样，所以他会多次询问你不同规格的地板。
注意：请仔细读题，不要弄混地板和地砖。
输入格式
第一行输入一个整数 T，代表询问数量。
接下来 T 行，每行两个正整数 ni,mi，代表小蓝询问的地板规格。
输出格式
对于每次询问，如果 2×3 的地砖可以铺满地板，输出 Yes，否则输出 No。
样例输入
4
7 6
2 2
12 8
1 12
样例输出
Yes
No
Yes
No
现在有一种解法是：
import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int t = scanner.nextInt();
    for (int i = 0; i < t; i++) {
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        if ((n * m) % 6 == 0 && n >= 2 && m >= 2) {
          System.out.println("Yes");
           } else {
             System.out.println("No");
           }
        }
        scanner.close();
     }
}
解释这种解法。
 */
public class Main2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int t = scanner.nextInt();
        for (int i = 0; i < t; i++) {
            int n = scanner.nextInt();
            int m = scanner.nextInt();
            if ((n * m) % 6 == 0 && n >= 2 && m >= 2) {
                System.out.println("Yes");
            } else {
                System.out.println("No");
            }
        }
        scanner.close();
    }
}
/*
这种解法的思路是将地板分割为若干个 2×3 的小矩形，只要地板总面积是 6 的倍数，就可以用地砖将其填满。
这个思路的正确性可以这样理解：将 2×3 的地砖分割为两个 1×3 的小矩形，然后将大矩形分割为若干个 1×3 的小矩形，每个小矩形可以用一块地砖覆盖。
关于你的担心，由于地砖大小固定为 2×3，因此只要地板总面积是 6 的倍数，就一定存在有效方案将其填满。



这可以通过数学归纳法来证明。
首先，当地板总面积为 6 时，我们可以将其填满，只需要使用一个 2 × 3 的地砖。
假设当地板总面积为 6k 时都存在有效方案将其填满，我们来考虑当地板总面积为 6(k+1) 时是否也存在有效方案。
我们将这个地板分成两个部分，一个部分面积为 6k，另一个部分面积为 6。根据假设，前一个部分存在有效方案将其填满，那么我们只需要考虑如何将后一个部分填满。
由于 6 是 2 和 3 的公倍数，所以我们可以使用若干个 2 × 3 的地砖来填满 6 的部分，每个 2 × 3 的地砖可以填满 6 的面积，
因此总共需要填满 6 的面积的地砖数量为 1，也就是使用一个 2 × 3 的地砖就可以将其填满。
因此，我们可以按照上述方法将整个地板填满，所以当地板的总面积为 6 的倍数时，一定存在有效方案将其填满。
 */
